Webレンダラー
Web 用アプリを実行および構築する場合、2 つの異なる方法から選択できます。 レンダラー。このページでは、両方のレンダラーと、最適なレンダラーを選択する方法について説明します。 あなたの要望。 2 つのレンダラーは次のとおりです。
- HTMLレンダラー
- このレンダラーは、CanvasKit レンダラーよりもダウンロード サイズが小さく、次の組み合わせを使用します。 HTML 要素、CSS、Canvas 要素、および SVG 要素。
- CanvasKit レンダラー
- このレンダラーは Flutter モバイルおよびデスクトップと完全に一致しており、高速です。 ウィジェット密度が高くなるとパフォーマンスが向上しますが、ダウンロード サイズが約 1.5 MB 増加します。キャンバスキットWebGL を使用して Skia ペイント コマンドをレンダリングします。
コマンドラインオプション
の--web-renderer
コマンド ライン オプションは 3 つの値のいずれかをとります。auto
、html
、 またcanvaskit
。
-
auto
(デフォルト) - 使用するレンダラーを自動的に選択します。このオプション アプリがモバイル ブラウザーで実行されているときに HTML レンダラーを選択します。 アプリがデスクトップブラウザで実行されている場合の CanvasKit レンダラー。 -
html
- 常に HTML レンダラーを使用する -
canvaskit
- 常に CanvasKit レンダラーを使用する
このフラグは、run
またbuild
サブコマンド。例えば:
flutter run -d chrome --web-renderer html
flutter build web --web-renderer canvaskit
非ブラウザ (モバイルまたはデスクトップ) デバイスの場合、このフラグは無視されます。 ターゲットが選択されます。
ランタイム構成
実行時に Web レンダラーをオーバーライドするには:
- を使用してアプリを構築します
auto
オプション。 - 構成オブジェクトを準備します。
renderer
に設定されたプロパティ"canvaskit"
また"html"
。 - そのオブジェクトを
engineInitializer.initializeEngine(configuration);
のメソッドFlutter Web アプリの初期化脚本。
<body>
<script>
let useHtml = true;
window.addEventListener('load', function(ev) {
_flutter.loader.loadEntrypoint({
serviceWorker: {
serviceWorkerVersion: serviceWorkerVersion,
},
onEntrypointLoaded: function(engineInitializer) {
let config = {
renderer: useHtml ? "html" : "canvaskit",
};
engineInitializer.initializeEngine(config).then(function(appRunner) {
appRunner.runApp();
});
}
});
});
</script>
</body>
Flutter エンジンの起動プロセス後に Web レンダラーを変更することはできません
に始まりますmain.dart.js
。
使用するオプションの選択
を選択してくださいauto
ダウンロード サイズを最適化する場合のオプション (デフォルト)
モバイル ブラウザーとデスクトップ ブラウザーでのパフォーマンスの最適化。
を選択してくださいhtml
パフォーマンスよりもダウンロード サイズを最適化する場合のオプション
デスクトップブラウザとモバイルブラウザの両方。
を選択してくださいcanvaskit
パフォーマンスを優先する場合はオプションを選択し、
デスクトップブラウザとモバイルブラウザの両方でピクセル完璧な一貫性を実現します。
例
デフォルトのレンダラー オプションを使用して Chrome で実行します (auto
):
flutter run -d chrome
デフォルト (自動) オプションを使用して、リリース モードでアプリをビルドします。
flutter build web --release
CanvasKit レンダラーのみを使用して、リリース モードでアプリをビルドします。
flutter build web --web-renderer canvaskit --release
HTML レンダラーを使用して、プロファイル モードでアプリを実行します。
flutter run -d chrome --web-renderer html --profile